package com.itheima.composite;

/**
 * @author zzw
 * @date 2025/10/19
 * @description 组合模式测试类
 */
public class Client {
    public static void main(String[] args) {
        // 创建菜单根节点
        MenuComponent root = new Menu("系统菜单", 1);

        // 创建一级菜单项
        MenuComponent userManagement = new Menu("用户管理", 2);
        MenuComponent productManagement = new Menu("产品管理", 2);

        // 添加一级菜单到根菜单
        root.add(userManagement);
        root.add(productManagement);

        // 创建二级菜单项并添加到用户管理菜单
        userManagement.add(new MenuItem("添加用户", 3));
        userManagement.add(new MenuItem("删除用户", 3));
        userManagement.add(new MenuItem("修改用户", 3));

        // 创建二级菜单项并添加到产品管理菜单
        productManagement.add(new MenuItem("添加产品", 3));
        productManagement.add(new MenuItem("删除产品", 3));

        // 打印整个菜单结构
        root.print();

        System.out.println("======");

        // 获取用户管理二级菜单第二个子菜单的名称
        MenuComponent child = userManagement.getChild(2);
        System.out.println(child.getName());

        // 移除产品管理三级菜单
        MenuComponent child1 = productManagement.getChild(1);
        productManagement.remove(child1);

        // 重新打印整个菜单结构
        root.print();
    }
}
